package com.own.business.system.dictionary.adapter.method;

import com.own.business.system.dictionary.adapter.model.DictionaryChildModel;
import com.own.business.system.dictionary.adapter.model.DictionaryChildQuery;
import com.own.component.common.model.PageModel;

import java.util.List;

/**
 * SystemDictionaryManageChildMethod
 *
 * @author chenxueli
 * @date 2024-05-21 09:53:00
 */
public interface SystemDictionaryManageChildMethod {

    /**
     * 根据父级id查询数据字典列表
     *
     * @param parentId 父级id
     * @return 查询结果
     */
    List<DictionaryChildModel> listEnableByParentId(Long parentId);

    /**
     * 查询全部
     *
     * @param query 查询条件
     * @return 查询结果
     */
    List<DictionaryChildModel> map(DictionaryChildQuery query);

    /**
     * 分页查询
     *
     * @param query 查询条件
     * @return 分页查询结果
     */
    PageModel<DictionaryChildModel> page(DictionaryChildQuery query);

    /**
     * 新增
     *
     * @param model 新增数据
     */
    void add(DictionaryChildModel model);

    /**
     * 修改
     *
     * @param id    主键id
     * @param model 修改数据
     */
    void update(Long id, DictionaryChildModel model);

    /**
     * 删除
     *
     * @param id 主键id
     */
    void delete(Long id);

    /**
     * 根据id查询
     *
     * @param id 主键id
     * @return 查询结果
     */
    DictionaryChildModel getById(Long id);

    /**
     * 修改参数的启用状态
     *
     * @param id     主键id
     * @param enable 启用状态
     */
    void updateEnableById(Long id, Integer enable);

}
